//-*-c++-*-

#ifndef ORDER_H
#define ORDER_H

#include <iostream>
#include <vector>
#include <ctime>
#include <algorithm>

#define NUM_TIMES_TO_SHUFFLE_INITIAL_ORDER 20
/*
 * For any given number of factors it generates an ordering.
 * Example ordering on 4 factors: 3, 2, 4, 1
 * So the third factor would be chosen first, the second factor would be chosen second, the fourth factor would be chosen third and t\
he first factor would be chosen last.
*/
class Order {
 public:
  int size; // The number of factors and the size of the orderArray
  std::vector<int> orderArray; // Stores a randomized order of consequtive numbers
  Order (int numFactors); // Initializes the vector and automatically scrambles
  void rescramble (); // scramble the orderArray
  void print(); // print the orderArray
};

#endif
